home *** CD-ROM | disk | FTP | other *** search
- #include <conio.h>
- #include "event.h"
-
- int get_key()
- {
- int key = EVENT_NO;
- if(kbhit()) // char available
- {
- key = getch();
-
-
- if (key<32)
- {
- switch(key)
- {
- case 13: key = EVENT_RETURN; break;
- case 25: key = EVENT_CTRL_Y; break;
- case 27: key = EVENT_ESC; break;
- case 9: key = EVENT_TAB; break;
- case 8: key = EVENT_BKSP; break;
- case 7: key = EVENT_BELL; break;
-
-
- case 0:
- key = getch();
- switch(key)
- {
- case 75: key = EVENT_LEFT; break;
- case 77: key = EVENT_RIGHT; break;
- case 71: key = EVENT_HOME; break;
- case 72: key = EVENT_UP;break;
- case 73: key = EVENT_PG_UP; break;
- case 76: key = EVENT_FIVE; break; // center of num. kbd
- case 79: key = EVENT_END; break;
- case 80: key = EVENT_DN; break;
- case 81: key = EVENT_PG_DN; break;
-
- case 119: key = EVENT_CTRL_HOME; break;
- case 132: key = EVENT_CTRL_PG_UP; break;
- case 117: key = EVENT_CTRL_END; break;
- case 118: key = EVENT_CTRL_PG_DN; break;
-
- case 59: key = EVENT_F1; break;
- case 60: key = EVENT_F2; break;
- case 61: key = EVENT_F3; break;
- case 62: key = EVENT_F4; break;
- case 63: key = EVENT_F5; break;
- case 64: key = EVENT_F6; break;
- case 65: key = EVENT_F7; break;
- case 66: key = EVENT_F8; break;
- case 67: key = EVENT_F9; break;
- case 68: key = EVENT_F10; break;
-
- case 84: key = EVENT_SHIFT_F1; break;
- case 85: key = EVENT_SHIFT_F2; break;
- case 86: key = EVENT_SHIFT_F3; break;
- case 87: key = EVENT_SHIFT_F4; break;
- case 88: key = EVENT_SHIFT_F5; break;
- case 89: key = EVENT_SHIFT_F6; break;
- case 90: key = EVENT_SHIFT_F7; break;
- case 91: key = EVENT_SHIFT_F8; break;
- case 92: key = EVENT_SHIFT_F9; break;
- case 93: key = EVENT_SHIFT_F10; break;
-
- case 94: key = EVENT_CTRL_F1; break;
- case 95: key = EVENT_CTRL_F2; break;
- case 96: key = EVENT_CTRL_F3; break;
- case 97: key = EVENT_CTRL_F4; break;
- case 98: key = EVENT_CTRL_F5; break;
- case 99: key = EVENT_CTRL_F6; break;
- case 100: key = EVENT_CTRL_F7; break;
- case 101: key = EVENT_CTRL_F8; break;
- case 102: key = EVENT_CTRL_F9; break;
- case 103: key = EVENT_CTRL_F10; break;
-
- case 104: key = EVENT_ALT_F1; break;
- case 105: key = EVENT_ALT_F2; break;
- case 106: key = EVENT_ALT_F3; break;
- case 107: key = EVENT_ALT_F4; break;
- case 108: key = EVENT_ALT_F5; break;
- case 109: key = EVENT_ALT_F6; break;
- case 110: key = EVENT_ALT_F7; break;
- case 111: key = EVENT_ALT_F8; break;
- case 112: key = EVENT_ALT_F9; break;
- case 113: key = EVENT_ALT_F10; break;
-
- case 30: key = EVENT_ALT_A; break;
- case 48: key = EVENT_ALT_B; break;
- case 46: key = EVENT_ALT_C; break;
- case 32: key = EVENT_ALT_D; break;
- case 18: key = EVENT_ALT_E; break;
- case 33: key = EVENT_ALT_F; break;
- case 34: key = EVENT_ALT_G; break;
- case 35: key = EVENT_ALT_H; break;
- case 23: key = EVENT_ALT_I; break;
- case 36: key = EVENT_ALT_J; break;
- case 37: key = EVENT_ALT_K; break;
- case 38: key = EVENT_ALT_L; break;
- case 50: key = EVENT_ALT_M; break;
-
- case 49: key = EVENT_ALT_N; break;
- case 24: key = EVENT_ALT_O; break;
- case 25: key = EVENT_ALT_P; break;
- case 16: key = EVENT_ALT_Q; break;
- case 19: key = EVENT_ALT_R; break;
- case 31: key = EVENT_ALT_S; break;
- case 20: key = EVENT_ALT_T; break;
- case 22: key = EVENT_ALT_U; break;
- case 47: key = EVENT_ALT_V; break;
- case 17: key = EVENT_ALT_W; break;
- case 45: key = EVENT_ALT_X; break;
- case 21: key = EVENT_ALT_Y; break;
- case 44: key = EVENT_ALT_Z; break;
-
- case 120: key = EVENT_ALT_1; break;
- case 121: key = EVENT_ALT_2; break;
- case 122: key = EVENT_ALT_3; break;
- case 123: key = EVENT_ALT_4; break;
- case 124: key = EVENT_ALT_5; break;
- case 125: key = EVENT_ALT_6; break;
- case 126: key = EVENT_ALT_7; break;
- case 127: key = EVENT_ALT_8; break;
- case 128: key = EVENT_ALT_9; break;
- case 129: key = EVENT_ALT_0; break;
- case 130: key = EVENT_ALT_MINUS; break;
- case 131: key = EVENT_ALT_EQUAL; break;
- case 165: key = EVENT_ALT_TAB; break;
-
- case 82: key = EVENT_INS; break;
- case 83: key = EVENT_DEL; break;
- case 15: key = EVENT_SHIFT_TAB; break;
- case 114: key = EVENT_CTRL_PRT_SCR; break;
- case 0: key = EVENT_CTRL_BREAK; break;
-
- default: key = EVENT_NO; break;
- }
- break;
- default: key = EVENT_NO; break;
- }
- }
- }
- return key;
- }
-